\subsection{Tipos de cuerpos rígidos del mundo de Shadow City.}

Se tienen dos tipos de cuerpos rígidos en el mundo del juego, los de los 
personajes y los de los escenarios.

Los cuerpos rígidos de todos los personajes cuentan con una forma de colisión 
cilíndrica cuyo eje  es paralelo al eje Y. Se eligió dicha forma debido a 
tratarse de una de las más simples además de que se adapta mejor al modelo de 
vehículos circulares del mundo 2D de algunos de los ejemplos de OpenSteer.

Esta forma de colisión cilíndrica se comparte entre todos los personajes 
posibles. Así, todos los enemigos normales cuentan con una misma forma de 
colisión, el personaje jugador con otra y el jefe del nivel con otra.

Cada uno de los cuerpos rígidos de los escenarios cuentan con una forma de 
colisión propia de tipo triangular. Estas formas de colisión no pueden ser 
reusadas ya que cada parte del escenario es distinta.

La obtención de todas las formas de colisión anteriores se realiza gracias a 
BtOgre. BtOgre es un wrapper mínimo para la utilización de Bullet en Ogre. 
Trabaja con las clases de Bullet y proporciona mecanismos de comunicación desde 
Bullet a Ogre y desde Ogre a Bullet.

La obtención de la forma de colisión de los personajes se obtiene ajustando un 
cilindro a la bounding box de la entidad de Ogre del personaje. Esto se realiza 
gracias a la clase converter proporcionada por BtOgre.

Hubo que modificar la función de converter encargada de dicha labor, ya que 
proporcionaba cilindros cuyo eje se orientaba con el eje X cuando en el mundo 
de Shadow City los personajes cuentan con formas de colisión cilíndricas cuya 
base reposa sobre el plano formado por los ejes X y Z.

La obtención de la forma de colisión de los escenarios se obtiene también 
gracias a BtOgre. La clase converter proporciona funciones que obtienen formas 
de colisión compuestas por triangulos a partir de entidades de Ogre.

Para facilitar esta labor de conversión, se cuenta con dos mallas  para cada 
parte o cuadrante del escenario, una detallada y otra simplificada al máximo. 
Esta malla simplificada representa las formas de colisión básicas (cubos, 
planos y cilindros) del escenario. De este modo se obtiene una forma de 
colisión mucho más simple que si se obtuviese directamente a partir de la malla 
detallada del escenario.

La gestión de las formas de colisión se realizan en los diferentes gestores del 
juego. De las formas de colisión de los enemigos se encarga ZombieManager, de 
las formas de colisión de los escenarios se encarga StageManager mientras que 
de la forma de colisión del personaje se encarga HumanManager.

